home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-M68K / AMIPCMCI.{2A < prev    next >
Text File  |  1999-09-17  |  3KB  |  111 lines

  1. /*
  2. ** asm-m68k/pcmcia.h -- Amiga Linux PCMCIA Definitions
  3. **
  4. ** Copyright 1997 by Alain Malek
  5. **
  6. ** This file is subject to the terms and conditions of the GNU General Public
  7. ** License.  See the file COPYING in the main directory of this archive
  8. ** for more details.
  9. **
  10. ** Created: 12/10/97 by Alain Malek
  11. */
  12.  
  13. #ifndef __AMIGA_PCMCIA_H__
  14. #define __AMIGA_PCMCIA_H__
  15.  
  16. #include <asm/amigayle.h>
  17.  
  18. /* prototypes */
  19.  
  20. void pcmcia_reset(void);
  21. int pcmcia_copy_tuple(unsigned char tuple_id, void *tuple, int max_len);
  22. void pcmcia_program_voltage(int voltage);
  23. void pcmcia_access_speed(int speed);
  24. void pcmcia_write_enable(void);
  25. void pcmcia_write_disable(void);
  26.  
  27. static inline u_char pcmcia_read_status(void)
  28. {
  29.     return (gayle.cardstatus & 0x7c);
  30. }
  31.  
  32. static inline u_char pcmcia_get_intreq(void)
  33. {
  34.     return (gayle.intreq);
  35. }
  36.  
  37. static inline void pcmcia_ack_int(u_char intreq)
  38. {
  39.     gayle.intreq = ((intreq & 0x2c) ^ 0x2c) | 0xc0;
  40. }
  41.  
  42. static inline void pcmcia_enable_irq(void)
  43. {
  44.     gayle.inten = GAYLE_IRQ_IDE|GAYLE_IRQ_IRQ;
  45. }
  46.  
  47. static inline void pcmcia_disable_irq(void)
  48. {
  49.     gayle.inten = GAYLE_IRQ_IDE;
  50. }
  51.  
  52. #define PCMCIA_INSERTED    (gayle.cardstatus & GAYLE_CS_CCDET)
  53.  
  54. /* valid voltages for pcmcia_ProgramVoltage */
  55.  
  56. #define PCMCIA_0V    0
  57. #define PCMCIA_5V    5
  58. #define PCMCIA_12V    12
  59.  
  60. /* valid speeds for pcmcia_AccessSpeed */
  61.  
  62. #define PCMCIA_SPEED_100NS    100
  63. #define PCMCIA_SPEED_150NS    150
  64. #define PCMCIA_SPEED_250NS    250
  65. #define PCMCIA_SPEED_720NS    720
  66.  
  67. /* PCMCIA Tuple codes */
  68.  
  69. #define CISTPL_NULL        0x00
  70. #define CISTPL_DEVICE        0x01
  71. #define CISTPL_LONGLINK_CB    0x02
  72. #define CISTPL_CONFIG_CB    0x04
  73. #define CISTPL_CFTABLE_ENTRY_CB    0x05
  74. #define CISTPL_LONGLINK_MFC    0x06
  75. #define CISTPL_BAR        0x07
  76. #define CISTPL_CHECKSUM        0x10
  77. #define CISTPL_LONGLINK_A    0x11
  78. #define CISTPL_LONGLINK_C    0x12
  79. #define CISTPL_LINKTARGET    0x13
  80. #define CISTPL_NO_LINK        0x14
  81. #define CISTPL_VERS_1        0x15
  82. #define CISTPL_ALTSTR        0x16
  83. #define CISTPL_DEVICE_A        0x17
  84. #define CISTPL_JEDEC_C        0x18
  85. #define CISTPL_JEDEC_A        0x19
  86. #define CISTPL_CONFIG        0x1a
  87. #define CISTPL_CFTABLE_ENTRY    0x1b
  88. #define CISTPL_DEVICE_OC    0x1c
  89. #define CISTPL_DEVICE_OA    0x1d
  90. #define CISTPL_DEVICE_GEO    0x1e
  91. #define CISTPL_DEVICE_GEO_A    0x1f
  92. #define CISTPL_MANFID        0x20
  93. #define CISTPL_FUNCID        0x21
  94. #define CISTPL_FUNCE        0x22
  95. #define CISTPL_SWIL        0x23
  96. #define CISTPL_END        0xff
  97.  
  98. /* FUNCID */
  99.  
  100. #define CISTPL_FUNCID_MULTI    0x00
  101. #define CISTPL_FUNCID_MEMORY    0x01
  102. #define CISTPL_FUNCID_SERIAL    0x02
  103. #define CISTPL_FUNCID_PARALLEL    0x03
  104. #define CISTPL_FUNCID_FIXED    0x04
  105. #define CISTPL_FUNCID_VIDEO    0x05
  106. #define CISTPL_FUNCID_NETWORK    0x06
  107. #define CISTPL_FUNCID_AIMS    0x07
  108. #define CISTPL_FUNCID_SCSI    0x08
  109.  
  110. #endif
  111.